#include<iostream>
#include<fcntl.h>
#include<unistd.h>
//非阻塞等待IO测试
void SetNoBlock(int fd)
{
    int fl = fcntl(fd,F_GETFL);
    if(fl<0)
    {
        return;
    }
    fcntl(fd,F_SETFL,fl|O_NONBLOCK);
}
int main()
{
    SetNoBlock(0);
    while(1)
    {
        char buff[1024];
        ssize_t n = read(0,buff,sizeof(buff)-1);
        if(n>0)//读取成功
        {
            buff[n]=0;
            std::cout<<buff<<std::endl;
        }
        else if(n<0)//暂时没有数据
        {
            //等待数据
            std::cout<<"等待中..."<<std::endl;
            sleep(1);
        }
        else//读取失败
        {
            break;
        }
    }
    return 0;
}